在脚本中裁剪视频 PRO
VideoEditor API 用于唤起系统视频裁剪界面,让用户把视频剪成需要的片段,并把裁剪结果返回给脚本。
命名空间:VideoEditor
功能概述
- 以全屏方式展示指定视频文件的裁剪界面
- 用户可以拖动时间轴设置起止点、预览,然后确认或取消
- 确认后返回裁剪结果的文件路径;用户取消时返回
null - 裁剪结果会写入临时目录中的新文件,如需保留请自行拷贝或移动
- 同一时刻只能存在一个裁剪界面
- 需要有可见的脚本界面,因此不适用于小组件与通知脚本
方法一览
方法说明
canEditVideo(filePath: string): Promise<boolean>
判断指定路径的视频是否可以裁剪。
参数
返回值
- 视频可以裁剪时 resolve
true - 文件不存在或格式不受支持时 resolve
false - 不会抛出错误
present(options: VideoEditorPresentOptions): Promise<string | null>
展示视频裁剪界面。
参数
VideoEditorQuality 取值如下:
返回值
-
用户确认时,resolve 裁剪结果的文件路径
-
用户取消时,resolve
null -
以下情况会抛出错误:
- 未传
filePath或为空字符串 filePath指向的文件不存在- 该视频无法裁剪(参见
canEditVideo) - 已经有一个裁剪界面在展示中
- 裁剪失败
- 未传
示例
dismiss(): Promise<void>
关闭由 present 打开的裁剪界面。
返回值
- 界面关闭后 resolve
- 当前没有展示中的界面时立即 resolve
使用说明
- 处于 pending 状态的
present会以nullresolve,等同于用户取消 - 一般不需要手动调用;适用于脚本需要自行关闭界面的场景,例如超时控制
使用示例
示例一:裁剪并保存视频
示例二:限制裁剪长度
示例三:从界面触发
错误与注意事项
常见错误
- 已有裁剪界面在展示中 —— 等待上一次
present结束,或先调用dismiss() - 指定路径下没有视频 —— 调用前先用
FileManager确认路径 - 该视频无法裁剪 —— 先用
canEditVideo检查
使用限制
- 仅支持裁剪,界面不提供其他编辑操作
- 结果始终写入新文件,源视频不会被修改
- 需要有可见的脚本界面,无法在小组件与通知脚本中使用
maximumDuration限制的是裁剪结果的长度,而不是源视频的长度
